Skip to main content

V2Factory

The Factory contract is responsible for creating and managing unique liquidity pools for various token pairs. The receiver of the trading fees among these liquidity pools is set on this contract.

The full contract can be found here.

Events

PairCreated

event PairCreated(address indexed token0, address indexed token1, address pair, uint);

Emitted each time a pair is created via createPair.

  • token0 is guaranteed to be strictly less than token1 by sort order.
  • The final uint log value will be 1 for the first pair created, 2 for the second, etc. (see allPairs/getPair).

Read-Only Functions

allPairs

function allPairs(uint) external view returns (address pair);

Returns the address of the nth pair (0-indexed) created through the factory, or address(0) (0x0000000000000000000000000000000000000000) if not enough pairs have been created yet.

  • Pass 0 for the address of the first pair created, 1 for the second, etc.

getPair

function getPair(address tokenA, address tokenB) external view returns (address pair);

Returns the address of the pair for tokenA and tokenB, if it has been created, else address(0) (0x0000000000000000000000000000000000000000).

  • tokenA and tokenB are interchangeable.

Parameters

NameTypeDescription
tokenAaddressaddress of one of the tokens in the pair
tokenBaddressaddress of the other token in the pair

allPairsLength

function allPairsLength() external view returns (uint);

Returns the total number of pairs created through the factory so far.

feeTo

function feeTo() external view returns (address);

Returns the address of where the feeTo is set to. If address(0) then the fees are not turned on.

feeToSetter

function feeToSetter() external view returns (address);

The address allowed to change feeTo.

migrator

function migrator() external view returns (address);

Returns the address of the migrator contract (used to migrate liquidity initially from uniswap to sushiswap).

State-Changing Functions

createPair

function createPair(address tokenA, address tokenB) external returns (address pair);

Creates a pair for tokenA and tokenB if one doesn't exist already.

  • tokenA and tokenB are interchangeable.

  • Emits PairCreated.

  • tokenA and tokenB are interchangeable.

NameTypeDescription
tokenAaddressaddress of one of the tokens in the pair
tokenBaddressaddress of the other token in the pair

setFeeTo

function setFeeTo(address _feeTo) external;

Sets the feeTo

Parameters

NameTypeDescription
_feeToaddressaddress of where to send protocol fees to

setMigrator

function setMigrator(address _migrator) external;

Sets the migrator.

setFeeToSetter

function setFeeToSetter(address _feeToSetter) external;

Sets the feeToSetter.

Parameters

NameTypeDescription
_feeToSetteraddressaddress that can change the feeTo address

Interface

pragma solidity >=0.5.0;

interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);

function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function migrator() external view returns (address);

function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);

function createPair(address tokenA, address tokenB) external returns (address pair);

function setFeeTo(address) external;
function setFeeToSetter(address) external;
function setMigrator(address) external;
}

ABI